
package Proxies;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for dataUsuario complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="dataUsuario">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="correo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="nick" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="contrasena" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="fechaNac" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="sexo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="ciudad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="pais" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="bloqueo" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="nivelVisibilidad" type="{http://WebServices/}enumVisibilidad" minOccurs="0"/>
 *         &lt;element name="muro" type="{http://WebServices/}dataMuro" minOccurs="0"/>
 *         &lt;element name="rol" type="{http://WebServices/}enumRol" minOccurs="0"/>
 *         &lt;element name="Imagen" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="cambioPass" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="notificar" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="grupos" type="{http://WebServices/}dataGrupo" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="amigos" type="{http://WebServices/}dataAmistad" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="calEventos">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="entry" maxOccurs="unbounded" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="key" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                             &lt;element name="value" type="{http://WebServices/}dataEvento" minOccurs="0"/>
 *                           &lt;/sequence>
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="historial" type="{http://WebServices/}dataHistorial" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "dataUsuario", propOrder = {
    "correo",
    "nombre",
    "nick",
    "contrasena",
    "fechaNac",
    "sexo",
    "ciudad",
    "pais",
    "bloqueo",
    "nivelVisibilidad",
    "muro",
    "rol",
    "imagen",
    "cambioPass",
    "notificar",
    "grupos",
    "amigos",
    "calEventos",
    "historial"
})
public class DataUsuario {

    protected String correo;
    protected String nombre;
    protected String nick;
    protected String contrasena;
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar fechaNac;
    protected String sexo;
    protected String ciudad;
    protected String pais;
    protected boolean bloqueo;
    protected EnumVisibilidad nivelVisibilidad;
    protected DataMuro muro;
    protected EnumRol rol;
    @XmlElement(name = "Imagen")
    protected String imagen;
    protected boolean cambioPass;
    protected boolean notificar;
    @XmlElement(nillable = true)
    protected List<DataGrupo> grupos;
    @XmlElement(nillable = true)
    protected List<DataAmistad> amigos;
    @XmlElement(required = true)
    protected DataUsuario.CalEventos calEventos;
    @XmlElement(nillable = true)
    protected List<DataHistorial> historial;

    /**
     * Gets the value of the correo property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCorreo() {
        return correo;
    }

    /**
     * Sets the value of the correo property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCorreo(String value) {
        this.correo = value;
    }

    /**
     * Gets the value of the nombre property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Sets the value of the nombre property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setNombre(String value) {
        this.nombre = value;
    }

    /**
     * Gets the value of the nick property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getNick() {
        return nick;
    }

    /**
     * Sets the value of the nick property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setNick(String value) {
        this.nick = value;
    }

    /**
     * Gets the value of the contrasena property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getContrasena() {
        return contrasena;
    }

    /**
     * Sets the value of the contrasena property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setContrasena(String value) {
        this.contrasena = value;
    }

    /**
     * Gets the value of the fechaNac property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getFechaNac() {
        return fechaNac;
    }

    /**
     * Sets the value of the fechaNac property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setFechaNac(XMLGregorianCalendar value) {
        this.fechaNac = value;
    }

    /**
     * Gets the value of the sexo property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSexo() {
        return sexo;
    }

    /**
     * Sets the value of the sexo property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSexo(String value) {
        this.sexo = value;
    }

    /**
     * Gets the value of the ciudad property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCiudad() {
        return ciudad;
    }

    /**
     * Sets the value of the ciudad property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCiudad(String value) {
        this.ciudad = value;
    }

    /**
     * Gets the value of the pais property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPais() {
        return pais;
    }

    /**
     * Sets the value of the pais property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPais(String value) {
        this.pais = value;
    }

    /**
     * Gets the value of the bloqueo property.
     * 
     */
    public boolean isBloqueo() {
        return bloqueo;
    }

    /**
     * Sets the value of the bloqueo property.
     * 
     */
    public void setBloqueo(boolean value) {
        this.bloqueo = value;
    }

    /**
     * Gets the value of the nivelVisibilidad property.
     * 
     * @return
     *     possible object is
     *     {@link EnumVisibilidad }
     *     
     */
    public EnumVisibilidad getNivelVisibilidad() {
        return nivelVisibilidad;
    }

    /**
     * Sets the value of the nivelVisibilidad property.
     * 
     * @param value
     *     allowed object is
     *     {@link EnumVisibilidad }
     *     
     */
    public void setNivelVisibilidad(EnumVisibilidad value) {
        this.nivelVisibilidad = value;
    }

    /**
     * Gets the value of the muro property.
     * 
     * @return
     *     possible object is
     *     {@link DataMuro }
     *     
     */
    public DataMuro getMuro() {
        return muro;
    }

    /**
     * Sets the value of the muro property.
     * 
     * @param value
     *     allowed object is
     *     {@link DataMuro }
     *     
     */
    public void setMuro(DataMuro value) {
        this.muro = value;
    }

    /**
     * Gets the value of the rol property.
     * 
     * @return
     *     possible object is
     *     {@link EnumRol }
     *     
     */
    public EnumRol getRol() {
        return rol;
    }

    /**
     * Sets the value of the rol property.
     * 
     * @param value
     *     allowed object is
     *     {@link EnumRol }
     *     
     */
    public void setRol(EnumRol value) {
        this.rol = value;
    }

    /**
     * Gets the value of the imagen property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getImagen() {
        return imagen;
    }

    /**
     * Sets the value of the imagen property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImagen(String value) {
        this.imagen = value;
    }

    /**
     * Gets the value of the cambioPass property.
     * 
     */
    public boolean isCambioPass() {
        return cambioPass;
    }

    /**
     * Sets the value of the cambioPass property.
     * 
     */
    public void setCambioPass(boolean value) {
        this.cambioPass = value;
    }

    /**
     * Gets the value of the notificar property.
     * 
     */
    public boolean isNotificar() {
        return notificar;
    }

    /**
     * Sets the value of the notificar property.
     * 
     */
    public void setNotificar(boolean value) {
        this.notificar = value;
    }

    /**
     * Gets the value of the grupos property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the grupos property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getGrupos().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DataGrupo }
     * 
     * 
     */
    public List<DataGrupo> getGrupos() {
        if (grupos == null) {
            grupos = new ArrayList<DataGrupo>();
        }
        return this.grupos;
    }

    /**
     * Gets the value of the amigos property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the amigos property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAmigos().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DataAmistad }
     * 
     * 
     */
    public List<DataAmistad> getAmigos() {
        if (amigos == null) {
            amigos = new ArrayList<DataAmistad>();
        }
        return this.amigos;
    }

    /**
     * Gets the value of the calEventos property.
     * 
     * @return
     *     possible object is
     *     {@link DataUsuario.CalEventos }
     *     
     */
    public DataUsuario.CalEventos getCalEventos() {
        return calEventos;
    }

    /**
     * Sets the value of the calEventos property.
     * 
     * @param value
     *     allowed object is
     *     {@link DataUsuario.CalEventos }
     *     
     */
    public void setCalEventos(DataUsuario.CalEventos value) {
        this.calEventos = value;
    }

    /**
     * Gets the value of the historial property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the historial property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getHistorial().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DataHistorial }
     * 
     * 
     */
    public List<DataHistorial> getHistorial() {
        if (historial == null) {
            historial = new ArrayList<DataHistorial>();
        }
        return this.historial;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="entry" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="key" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
     *                   &lt;element name="value" type="{http://WebServices/}dataEvento" minOccurs="0"/>
     *                 &lt;/sequence>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "entry"
    })
    public static class CalEventos {

        protected List<DataUsuario.CalEventos.Entry> entry;

        /**
         * Gets the value of the entry property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the entry property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getEntry().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link DataUsuario.CalEventos.Entry }
         * 
         * 
         */
        public List<DataUsuario.CalEventos.Entry> getEntry() {
            if (entry == null) {
                entry = new ArrayList<DataUsuario.CalEventos.Entry>();
            }
            return this.entry;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="key" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
         *         &lt;element name="value" type="{http://WebServices/}dataEvento" minOccurs="0"/>
         *       &lt;/sequence>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "key",
            "value"
        })
        public static class Entry {

            protected String key;
            protected DataEvento value;

            /**
             * Gets the value of the key property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getKey() {
                return key;
            }

            /**
             * Sets the value of the key property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setKey(String value) {
                this.key = value;
            }

            /**
             * Gets the value of the value property.
             * 
             * @return
             *     possible object is
             *     {@link DataEvento }
             *     
             */
            public DataEvento getValue() {
                return value;
            }

            /**
             * Sets the value of the value property.
             * 
             * @param value
             *     allowed object is
             *     {@link DataEvento }
             *     
             */
            public void setValue(DataEvento value) {
                this.value = value;
            }

        }

    }

}
